package ec.linde.persistencia.entidades;

// Generated 07-ago-2014 12:54:27 by Hibernate Tools 4.0.0

import static javax.persistence.GenerationType.IDENTITY;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * ProdCabeceraProforma generated by hbm2java
 */
@Entity
@Table(name = "prod_cabecera_proforma", schema = "productividad")
public class ProdCabeceraProforma implements java.io.Serializable {

	private int caprId;
	// private ProdParametrosTransport prodParametrosTransport;
	private SeadUsuarios seadUsuarios;
	private ProdClientes prodClientes;
	private ProdEstados prodEstados;
	private ProdPersonas prodPersonas;
	private int caprCodOferta;
	private String caprCodDkP;
	private Date caprFecha;
	private String caprValidezOferta;
	private String caprDetalle;
	private String caprTipoPresupuesto;
	private String caprResponsaComercial;
	private String caprTiempoEjecucion;
	private String caprTipoOperacion;
	private String caprBasePresupues;
	private String caprDireccionObra;
	private String caprObservacionGeneral;
	private String caprNotaIndirecto;
	private Double caprCostoMovIndirecto;
	private double caprSubtotalDirecto;
	private double caprSubtotalIndirecto;
	private double caprTotal;
	private int baprId;
	private String caprUsuaModifica;
	private String caprUsuaElimina;
	private String caprUsuaBloquea;
	private String caprUsuaEnvia;
	private String caprUltimoEstado;
	private Date caprFechaModifica;
	private Date caprFechaElimina;
	private Date caprFechaBloquea;
	private Date caprFechaEnvia;
	private int caprAnioOferta;
	private int caprEstadoAnterior;
	private Set<ProdDatosAdjuntos> prodDatosAdjuntoses = new HashSet<ProdDatosAdjuntos>(
			0);
	private Set<ProdProfPretarifMovili> prodProfPretarifMovilis = new HashSet<ProdProfPretarifMovili>(
			0);
	private Set<ProdHospedajesProformas> prodHospedajesProformases = new HashSet<ProdHospedajesProformas>(
			0);
	private Set<ProdPretarifLogistProf> prodPretarifLogistProfs = new HashSet<ProdPretarifLogistProf>(
			0);
	private Set<ProdCondicionesTecnicas> prodCondicionesTecnicases = new HashSet<ProdCondicionesTecnicas>(
			0);
	private Set<ProdPartidaDetalle> prodPartidaDetalles = new HashSet<ProdPartidaDetalle>(
			0);
	private Set<ProdGestionGeneralProf> prodGestionGeneralProfs = new HashSet<ProdGestionGeneralProf>(
			0);
	private Set<ProdParametrosTransport> prodParametrosTransports = new HashSet<ProdParametrosTransport>(
			0);
	private Set<ProdPersonalIndirecto> prodPersonalIndirectos = new HashSet<ProdPersonalIndirecto>(
			0);
	private Set<ProdOtrosIndirectos> prodOtrosIndirectoses = new HashSet<ProdOtrosIndirectos>(
			0);

	public ProdCabeceraProforma() {
	}

	public ProdCabeceraProforma(int caprId, int caprCodOferta,
			String caprCodDkP, Date caprFecha, String caprValidezOferta,
			double caprSubtotalDirecto, double caprSubtotalIndirecto,
			double caprTotal, int baprId) {
		this.caprId = caprId;
		this.caprCodOferta = caprCodOferta;
		this.caprCodDkP = caprCodDkP;
		this.caprFecha = caprFecha;
		this.caprValidezOferta = caprValidezOferta;
		this.caprSubtotalDirecto = caprSubtotalDirecto;
		this.caprSubtotalIndirecto = caprSubtotalIndirecto;
		this.caprTotal = caprTotal;
		this.baprId = baprId;
	}

	public ProdCabeceraProforma(int caprId,
			ProdParametrosTransport prodParametrosTransport,
			SeadUsuarios seadUsuarios, ProdClientes prodClientes,
			ProdEstados prodEstados, ProdPersonas prodPersonas,
			int caprCodOferta, String caprCodDkP, Date caprFecha,
			String caprValidezOferta, String caprDetalle,
			String caprTipoPresupuesto, String caprResponsaComercial,
			String caprTiempoEjecucion, String caprTipoOperacion,
			String caprBasePresupues, String caprDireccionObra,
			String caprObservacionGeneral, String caprNotaIndirecto,
			Double caprCostoMovIndirecto, double caprSubtotalDirecto,
			double caprSubtotalIndirecto, double caprTotal, int baprId,
			Set<ProdDatosAdjuntos> prodDatosAdjuntoses,
			Set<ProdProfPretarifMovili> prodProfPretarifMovilis,
			Set<ProdHospedajesProformas> prodHospedajesProformases,
			Set<ProdPretarifLogistProf> prodPretarifLogistProfs,
			Set<ProdCondicionesTecnicas> prodCondicionesTecnicases,
			Set<ProdPartidaDetalle> prodPartidaDetalles,
			Set<ProdGestionGeneralProf> prodGestionGeneralProfs,
			Set<ProdPersonalIndirecto> prodPersonalIndirectos,
			Set<ProdOtrosIndirectos> prodOtrosIndirectoses,
			Set<ProdParametrosTransport> prodParametrosTransports) {
		this.caprId = caprId;
		this.prodParametrosTransports = prodParametrosTransports;
		this.seadUsuarios = seadUsuarios;
		this.prodClientes = prodClientes;
		this.prodEstados = prodEstados;
		this.prodPersonas = prodPersonas;
		this.caprCodOferta = caprCodOferta;
		this.caprCodDkP = caprCodDkP;
		this.caprFecha = caprFecha;
		this.caprValidezOferta = caprValidezOferta;
		this.caprDetalle = caprDetalle;
		this.caprTipoPresupuesto = caprTipoPresupuesto;
		this.caprResponsaComercial = caprResponsaComercial;
		this.caprTiempoEjecucion = caprTiempoEjecucion;
		this.caprTipoOperacion = caprTipoOperacion;
		this.caprBasePresupues = caprBasePresupues;
		this.caprDireccionObra = caprDireccionObra;
		this.caprObservacionGeneral = caprObservacionGeneral;
		this.caprNotaIndirecto = caprNotaIndirecto;
		this.caprCostoMovIndirecto = caprCostoMovIndirecto;
		this.caprSubtotalDirecto = caprSubtotalDirecto;
		this.caprSubtotalIndirecto = caprSubtotalIndirecto;
		this.caprTotal = caprTotal;
		this.baprId = baprId;
		this.prodDatosAdjuntoses = prodDatosAdjuntoses;
		this.prodProfPretarifMovilis = prodProfPretarifMovilis;
		this.prodHospedajesProformases = prodHospedajesProformases;
		this.prodPretarifLogistProfs = prodPretarifLogistProfs;
		this.prodCondicionesTecnicases = prodCondicionesTecnicases;
		this.prodPartidaDetalles = prodPartidaDetalles;
		this.prodGestionGeneralProfs = prodGestionGeneralProfs;
		this.prodPersonalIndirectos = prodPersonalIndirectos;
		this.prodOtrosIndirectoses = prodOtrosIndirectoses;
		// /this.prodParametrosTransports = prodParametrosTransports;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "capr_id", unique = true, nullable = false)
	public int getCaprId() {
		return this.caprId;
	}

	public void setCaprId(int caprId) {
		this.caprId = caprId;
	}

	/*
	 * @ManyToOne//(fetch = FetchType.LAZY)
	 * 
	 * @JoinColumn(name = "patr_id") public ProdParametrosTransport
	 * getProdParametrosTransport() { return this.prodParametrosTransport; }
	 * 
	 * public void setProdParametrosTransport( ProdParametrosTransport
	 * prodParametrosTransport) { this.prodParametrosTransport =
	 * prodParametrosTransport; }
	 */

	@ManyToOne
	// (fetch = FetchType.LAZY)
	@JoinColumn(name = "usua_id")
	public SeadUsuarios getSeadUsuarios() {
		return this.seadUsuarios;
	}

	public void setSeadUsuarios(SeadUsuarios seadUsuarios) {
		this.seadUsuarios = seadUsuarios;
	}

	@ManyToOne
	// (fetch = FetchType.LAZY)
	@JoinColumn(name = "clie_id")
	public ProdClientes getProdClientes() {
		return this.prodClientes;
	}

	public void setProdClientes(ProdClientes prodClientes) {
		this.prodClientes = prodClientes;
	}

	@ManyToOne
	// (fetch = FetchType.LAZY)
	@JoinColumn(name = "esta_id")
	public ProdEstados getProdEstados() {
		return this.prodEstados;
	}

	public void setProdEstados(ProdEstados prodEstados) {
		this.prodEstados = prodEstados;
	}

	@ManyToOne
	// (fetch = FetchType.LAZY)
	@JoinColumn(name = "pers_id")
	public ProdPersonas getProdPersonas() {
		return this.prodPersonas;
	}

	public void setProdPersonas(ProdPersonas prodPersonas) {
		this.prodPersonas = prodPersonas;
	}

	@Column(name = "capr_cod_oferta", nullable = false)
	public int getCaprCodOferta() {
		return this.caprCodOferta;
	}

	public void setCaprCodOferta(int caprCodOferta) {
		this.caprCodOferta = caprCodOferta;
	}

	@Column(name = "capr_cod_dk_p", nullable = false)
	public String getCaprCodDkP() {
		return this.caprCodDkP;
	}

	public void setCaprCodDkP(String caprCodDkP) {
		this.caprCodDkP = caprCodDkP;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "capr_fecha", nullable = false, length = 13)
	public Date getCaprFecha() {
		return this.caprFecha;
	}

	public void setCaprFecha(Date caprFecha) {
		this.caprFecha = caprFecha;
	}

	@Column(name = "capr_validez_oferta", nullable = false)
	public String getCaprValidezOferta() {
		return this.caprValidezOferta;
	}

	public void setCaprValidezOferta(String caprValidezOferta) {
		this.caprValidezOferta = caprValidezOferta;
	}

	@Column(name = "capr_detalle")
	public String getCaprDetalle() {
		return this.caprDetalle;
	}

	public void setCaprDetalle(String caprDetalle) {
		this.caprDetalle = caprDetalle;
	}

	@Column(name = "capr_tipo_presupuesto")
	public String getCaprTipoPresupuesto() {
		return this.caprTipoPresupuesto;
	}

	public void setCaprTipoPresupuesto(String caprTipoPresupuesto) {
		this.caprTipoPresupuesto = caprTipoPresupuesto;
	}

	@Column(name = "capr_responsa_comercial")
	public String getCaprResponsaComercial() {
		return this.caprResponsaComercial;
	}

	public void setCaprResponsaComercial(String caprResponsaComercial) {
		this.caprResponsaComercial = caprResponsaComercial;
	}

	@Column(name = "capr_tiempo_ejecucion")
	public String getCaprTiempoEjecucion() {
		return this.caprTiempoEjecucion;
	}

	public void setCaprTiempoEjecucion(String caprTiempoEjecucion) {
		this.caprTiempoEjecucion = caprTiempoEjecucion;
	}

	@Column(name = "capr_tipo_operacion")
	public String getCaprTipoOperacion() {
		return this.caprTipoOperacion;
	}

	public void setCaprTipoOperacion(String caprTipoOperacion) {
		this.caprTipoOperacion = caprTipoOperacion;
	}

	@Column(name = "capr_base_presupues")
	public String getCaprBasePresupues() {
		return this.caprBasePresupues;
	}

	public void setCaprBasePresupues(String caprBasePresupues) {
		this.caprBasePresupues = caprBasePresupues;
	}

	@Column(name = "capr_direccion_obra")
	public String getCaprDireccionObra() {
		return this.caprDireccionObra;
	}

	public void setCaprDireccionObra(String caprDireccionObra) {
		this.caprDireccionObra = caprDireccionObra;
	}

	@Column(name = "capr_observacion_general")
	public String getCaprObservacionGeneral() {
		return this.caprObservacionGeneral;
	}

	public void setCaprObservacionGeneral(String caprObservacionGeneral) {
		this.caprObservacionGeneral = caprObservacionGeneral;
	}

	@Column(name = "capr_nota_indirecto")
	public String getCaprNotaIndirecto() {
		return this.caprNotaIndirecto;
	}

	public void setCaprNotaIndirecto(String caprNotaIndirecto) {
		this.caprNotaIndirecto = caprNotaIndirecto;
	}

	@Column(name = "capr_costo_mov_indirecto", precision = 17, scale = 17)
	public Double getCaprCostoMovIndirecto() {
		return this.caprCostoMovIndirecto;
	}

	public void setCaprCostoMovIndirecto(Double caprCostoMovIndirecto) {
		this.caprCostoMovIndirecto = caprCostoMovIndirecto;
	}

	@Column(name = "capr_subtotal_directo", nullable = false, precision = 17, scale = 17)
	public double getCaprSubtotalDirecto() {
		return this.caprSubtotalDirecto;
	}

	public void setCaprSubtotalDirecto(double caprSubtotalDirecto) {
		this.caprSubtotalDirecto = caprSubtotalDirecto;
	}

	@Column(name = "capr_subtotal_indirecto", nullable = false, precision = 17, scale = 17)
	public double getCaprSubtotalIndirecto() {
		return this.caprSubtotalIndirecto;
	}

	public void setCaprSubtotalIndirecto(double caprSubtotalIndirecto) {
		this.caprSubtotalIndirecto = caprSubtotalIndirecto;
	}

	@Column(name = "capr_total", nullable = false, precision = 17, scale = 17)
	public double getCaprTotal() {
		return this.caprTotal;
	}

	public void setCaprTotal(double caprTotal) {
		this.caprTotal = caprTotal;
	}

	@Column(name = "bapr_id", nullable = false)
	public int getBaprId() {
		return this.baprId;
	}

	public void setBaprId(int baprId) {
		this.baprId = baprId;
	}

	@Column(name = "capr_usua_modifica", nullable = true)
	public String getCaprUsuaModifica() {
		return caprUsuaModifica;
	}

	public void setCaprUsuaModifica(String caprUsuaModifica) {
		this.caprUsuaModifica = caprUsuaModifica;
	}

	@Column(name = "capr_usua_elimina", nullable = true)
	public String getCaprUsuaElimina() {
		return caprUsuaElimina;
	}

	public void setCaprUsuaElimina(String caprUsuaElimina) {
		this.caprUsuaElimina = caprUsuaElimina;
	}

	@Column(name = "capr_usua_bloquea", nullable = true)
	public String getCaprUsuaBloquea() {
		return caprUsuaBloquea;
	}

	public void setCaprUsuaBloquea(String caprUsuaBloquea) {
		this.caprUsuaBloquea = caprUsuaBloquea;
	}

	@Column(name = "capr_ultimo_estado", nullable = true)
	public String getCaprUltimoEstado() {
		return caprUltimoEstado;
	}

	public void setCaprUltimoEstado(String caprUltimoEstado) {
		this.caprUltimoEstado = caprUltimoEstado;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "capr_fecha_modifica", nullable = false, length = 13)
	public Date getCaprFechaModifica() {
		return caprFechaModifica;
	}

	public void setCaprFechaModifica(Date caprFechaModifica) {
		this.caprFechaModifica = caprFechaModifica;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "capr_fecha_elimina", nullable = false, length = 13)
	public Date getCaprFechaElimina() {
		return caprFechaElimina;
	}

	public void setCaprFechaElimina(Date caprFechaElimina) {
		this.caprFechaElimina = caprFechaElimina;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "capr_fecha_bloquea", nullable = false, length = 13)
	public Date getCaprFechaBloquea() {
		return caprFechaBloquea;
	}

	public void setCaprFechaBloquea(Date caprFechaBloquea) {
		this.caprFechaBloquea = caprFechaBloquea;
	}

	@Column(name = "capr_usua_envia", nullable = true)
	public String getCaprUsuaEnvia() {
		return caprUsuaEnvia;
	}

	public void setCaprUsuaEnvia(String caprUsuaEnvia) {
		this.caprUsuaEnvia = caprUsuaEnvia;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "capr_fecha_envia", nullable = false, length = 13)
	public Date getCaprFechaEnvia() {
		return caprFechaEnvia;
	}

	public void setCaprFechaEnvia(Date caprFechaEnvia) {
		this.caprFechaEnvia = caprFechaEnvia;
	}

	@Column(name = "capr_anio_oferta", nullable = false)
	public int getCaprAnioOferta() {
		return caprAnioOferta;
	}

	public void setCaprAnioOferta(int caprAnioOferta) {
		this.caprAnioOferta = caprAnioOferta;
	}

	@Column(name = "capr_estado_anterior", nullable = true)
	public int getCaprEstadoAnterior() {
		return caprEstadoAnterior;
	}

	public void setCaprEstadoAnterior(int caprEstadoAnterior) {
		this.caprEstadoAnterior = caprEstadoAnterior;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "prodCabeceraProforma")
	public Set<ProdDatosAdjuntos> getProdDatosAdjuntoses() {
		return this.prodDatosAdjuntoses;
	}

	public void setProdDatosAdjuntoses(
			Set<ProdDatosAdjuntos> prodDatosAdjuntoses) {
		this.prodDatosAdjuntoses = prodDatosAdjuntoses;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "prodCabeceraProforma")
	public Set<ProdProfPretarifMovili> getProdProfPretarifMovilis() {
		return this.prodProfPretarifMovilis;
	}

	public void setProdProfPretarifMovilis(
			Set<ProdProfPretarifMovili> prodProfPretarifMovilis) {
		this.prodProfPretarifMovilis = prodProfPretarifMovilis;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "prodCabeceraProforma")
	public Set<ProdHospedajesProformas> getProdHospedajesProformases() {
		return this.prodHospedajesProformases;
	}

	public void setProdHospedajesProformases(
			Set<ProdHospedajesProformas> prodHospedajesProformases) {
		this.prodHospedajesProformases = prodHospedajesProformases;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "prodCabeceraProforma")
	public Set<ProdPretarifLogistProf> getProdPretarifLogistProfs() {
		return this.prodPretarifLogistProfs;
	}

	public void setProdPretarifLogistProfs(
			Set<ProdPretarifLogistProf> prodPretarifLogistProfs) {
		this.prodPretarifLogistProfs = prodPretarifLogistProfs;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "prodCabeceraProforma")
	public Set<ProdCondicionesTecnicas> getProdCondicionesTecnicases() {
		return this.prodCondicionesTecnicases;
	}

	public void setProdCondicionesTecnicases(
			Set<ProdCondicionesTecnicas> prodCondicionesTecnicases) {
		this.prodCondicionesTecnicases = prodCondicionesTecnicases;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "prodCabeceraProforma")
	public Set<ProdPartidaDetalle> getProdPartidaDetalles() {
		return this.prodPartidaDetalles;
	}

	public void setProdPartidaDetalles(
			Set<ProdPartidaDetalle> prodPartidaDetalles) {
		this.prodPartidaDetalles = prodPartidaDetalles;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "prodCabeceraProforma")
	public Set<ProdGestionGeneralProf> getProdGestionGeneralProfs() {
		return this.prodGestionGeneralProfs;
	}

	public void setProdGestionGeneralProfs(
			Set<ProdGestionGeneralProf> prodGestionGeneralProfs) {
		this.prodGestionGeneralProfs = prodGestionGeneralProfs;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "prodCabeceraProforma")
	public Set<ProdParametrosTransport> getProdParametrosTransports() {
		return this.prodParametrosTransports;
	}

	public void setProdParametrosTransports(
			Set<ProdParametrosTransport> prodParametrosTransports) {
		this.prodParametrosTransports = prodParametrosTransports;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "prodCabeceraProforma")
	public Set<ProdPersonalIndirecto> getProdPersonalIndirectos() {
		return this.prodPersonalIndirectos;
	}

	public void setProdPersonalIndirectos(
			Set<ProdPersonalIndirecto> prodPersonalIndirectos) {
		this.prodPersonalIndirectos = prodPersonalIndirectos;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "prodCabeceraProforma")
	public Set<ProdOtrosIndirectos> getProdOtrosIndirectoses() {
		return this.prodOtrosIndirectoses;
	}

	public void setProdOtrosIndirectoses(
			Set<ProdOtrosIndirectos> prodOtrosIndirectoses) {
		this.prodOtrosIndirectoses = prodOtrosIndirectoses;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(Object entidad) {
		return (entidad instanceof ProdCabeceraProforma) ? getCaprId() == ((ProdCabeceraProforma) entidad)
				.getCaprId() : false;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#hashCode()
	 */
	@Override
	public int hashCode() {
		return getCaprId() > 0 ? getCaprId() : super.hashCode();
	}

}
